/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package logic;

import java.util.Calendar;
import java.util.Date;

/**
 * Controlador para la comunicación de la vista con el modelo
 * @author Lezkus
 */
public class ControladorVentas {
    public ControladorVentas (VentaArray ventas){
        this.ventas = ventas;
    }
    /**
     * Descuenta una cantidad determinada de una venta
     * @param parseInt
     * @param id 
     */
    public void descuenta(int parseInt, int id) {
        this.ventas.descuenta(parseInt, id);
    }
    /**
     * Pide un guardado a la base de datos que devolverá true si fue correcto
     * @return 
     */
    public boolean requestSave() {
        if (this.ventas.requestSave(VentaArray.filePath))
            return true;
        return false;
    }
    /**
     * Pide un evento quit para salir
     */
    public void requestQuit() {
        this.ventas.requestQuit();
    }
    /**
     * Guarda y sale (si el guardado fue exitoso)
     */
    public void requestSaveAndQuit() {
        if (this.requestSave())
            this.requestQuit();
    }
    /**
     * Crea una venta y la añade a la base de datos
     * @param text
     * @param text0
     * @param text1
     * @param c
     * @param comentarios
     * @param text2
     * @param p
     * @param id 
     */
    public void createAndAddVenta(String text, String text0, String text1, Calendar c, String comentarios, String text2, String p, int id) {
        this.ventas.addVenta(new Venta(text,text0,text1,c,comentarios,text2,p,id));            
    }
    /**
     * Fuerza una actualización de los observadores
     */
    public void forceUpdate() {
        this.ventas.forceUpdate();
    }
    /**
     * Hace una búsqueda que será reflejada a los observadores
     * A través de inventoryChange
     * @param text
     * @param text0
     * @param text1
     * @param date 
     */
    public void performSearch(String text, String text0, String text1, Date date) {
        this.ventas.performSearch(text, text0, text1, date);
    }
    /**
     * Crea una factura de la venta especificada
     * @param id 
     */
    public void factura(int id) {
        this.ventas.factura(id);
    }
    
    private VentaArray ventas;
}
